/*
 * Copyright (c) 2025 CAX Conversion Project
 */
package com.comac.ins.isfd.service;

import com.comac.ins.common.mybatis.core.page.PageQuery;
import com.comac.ins.common.mybatis.core.page.TableDataInfo;
import com.comac.ins.isfd.domain.bo.IsfdDatabaseModelingConfigSaveBo;
import com.comac.ins.isfd.domain.vo.IsfdDatabaseModelingConfigFieldVo;
import com.comac.ins.isfd.domain.vo.IsfdDatabaseModelingConfigShowVo;
import com.comac.ins.isfd.domain.vo.IsfdDatabaseModelingConfigVo;
import com.comac.ins.isfd.domain.bo.IsfdDatabaseModelingConfigBo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 数据库建模配置Service接口
 *
 * @author Lion Li
 * @date 2024-11-27
 */
public interface IIsfdDatabaseModelingConfigService {

    /**
     * 查询数据库建模配置
     *
     * @param id 主键
     * @return 数据库建模配置
     */
    IsfdDatabaseModelingConfigVo queryById(String id);

    /**
     * 分页查询数据库建模配置列表
     *
     * @param bo        查询条件
     * @param pageQuery 分页参数
     * @return 数据库建模配置分页列表
     */
    TableDataInfo<IsfdDatabaseModelingConfigVo> queryPageList(IsfdDatabaseModelingConfigBo bo, PageQuery pageQuery);

    /**
     * 查询符合条件的数据库建模配置列表
     *
     * @param bo 查询条件
     * @return 数据库建模配置列表
     */
    List<IsfdDatabaseModelingConfigShowVo> queryList(IsfdDatabaseModelingConfigBo bo);

    /**
     * 查询符合条件的数据库建模配置列表
     *
     * @param tableName 查询条件
     * @return 数据库建模配置列表
     */
    List<IsfdDatabaseModelingConfigFieldVo> queryFieldsByTableName(String tableName);

    /**
     * 保存数据库建模配置
     *
     * @param saveBo 数据库建模配置
     * @return 是否新增成功
     */
    Boolean saveConfig(IsfdDatabaseModelingConfigSaveBo saveBo);

    /**
     * 保存数据库建模配置
     *
     * @param bo 数据库建模配置
     * @return 是否新增成功
     */
    Integer deleteConfig(IsfdDatabaseModelingConfigBo bo);

    /**
     * 导入新增数据
     *
     * @return 是否新增成功
     */
    String importBDFData(IsfdDatabaseModelingConfigBo bo, MultipartFile file);

}
